// 导入axios
import axios from "axios";
// 导入Vue
import Vue from "vue";
// 导入加载提示
import Toast from "@/plugin/Toast/index.js";
// Vue挂载Toast 执行intall放
Vue.use(Toast);
import {
	Message
} from "element-ui";
import $store from "@/store/index.js";
import $router from "@/router/index.js";
// 配置默认选项
const request = axios.create({
	// 请求的默认域名
	baseURL: "http://dida100.com:8888",
	timeout: 5000, //超时，请求5秒还没好，就返回失败
});

// 拦截请求头，添加加载提示 token（ajax开始）
request.interceptors.request.use(function(config) {
	// console.log(config);
	// console.log("请求加载中...")
	if (config.loading) {
		Toast.show(config.loading, 5000); //显示加载提示
	}
	// 添加请求头(所有网络请求，都会添加请求头)
	config.headers.Authorization = "Bearer " + localStorage.getItem("token");
	return config;
});

// 拦截响应头，关闭加载提示（ajax结束）
request.interceptors.response.use(
	function(res) {
		// console.log("加载结束...")
		Toast.hide(); //请求结束，关闭加载提示
		return res;
	},
	function(err) {
		console.log("错误", err);
		// 统一错误处理（没有权限）
		if (err.response && err.response.data && err.response.data.code == 1) {
			Message({
				message: err.response.data.msg || "没有权限",
				type: "warning",
			});
			//执行注销
			$store.dispatch("logout");
			// 跳转login页面 当前路由
			var $route = $router.history.current;
			// 跳转到登录页面
			$router.replace("/?redirect=" + $route.fullpath);
		} else if (err.code == "ERR_BAD_REQUEST") {
			Message({
				message: "请求地址发生错误！",
				type: "warning",
			});
		}
	}
);

// 导出
export default request;
// interceptors 拦截器 use使用 request请求 config配置  response 响应
// export 导出  default 默认 request请求
// base继承 URL地址 timeout超时 create创建
